package com.cskaoyan.javase.array._4operation._2reverse;

import java.util.Arrays;

/**
 * 数组的逆序（reverse），即颠倒数组中元素的顺序，在原数组的数组上改变元素顺序：
 * 比如[1,2,3,4,5] --> [5,4,3,2,1]
 *
 * 即下标为"0"和"length-1"位置的元素互换，下标为"1"和"length-2"位置的元素互换....
 * 即，把下标为"i"和"length-1-i"元素互换即可！
 * 但是注意：只需要交换一半数组的元素即可，不要遍历整个数组，会再交换回去！！
 *
 * @since 09:25
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        reverse(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void reverse(int[] target) {
        // 核心思路 下标为"i"和"length-1-i"的元素互换
        for (int i = 0; i < target.length / 2; i++) {
            // 代码中的交换逻辑,需要temp,需要第三个变量来完成
            int temp = target[i];
            target[i] = target[target.length - 1 - i];
            target[target.length - 1 - i] = temp;
        }
    }
}
